Stored program controlled switching systems have traditionally included a central computer that controlled switching functions in response to a program stored in memory. Although recent switching systems have distributed the call processing function among a number of system control units, many of the time-consuming tasks involved in call setup are still typically performed by a central control. For example, in one known digital switching system, the switching function is distributed among a plurality of switching modules. Each switching module has a plurality of ports and provides connections among the lines and trunks connected to the ports of that module. Calls involving lines or trunks connected to different modules are completed through a time multiplexed switch that interconnects the modules. Each switching module includes a control unit that controls the switching function of that module. The system also includes a central control that controls the switching function of the time-multiplexed switch. Call handling in such systems requires the execution of a number of functions in addition to establishing connections. Although many of the real-time intensive tasks associated with calls, e.g., signal processing, are performed by the switching module control units, others, notably the determination of the identity of the terminating port of the switching system for each call, are performed by the system central control. The terminating port determination function includes such steps as call screening, determining whether a line or a trunk is required, translating dialed numbers into physical system addresses and hunting for idle members of trunk groups or multi-line hunt groups. These are time-consuming tasks which involve extensive database searching and data manipulation.
One of the important advantages of a modular system of this type is that its capacity can be closely matched to the requirements of specific applications. However, as the system becomes larger and the number of switching modules increases, the performance by the system central control of the per-call tasks associated with the terminating port determination function, imposes an upper limited on the overall system call processing capacity.
In the known system, the control of multi-port hunt groups is centralized in the system central control. Such centralized hunt group control is relatively easy to implement as a sequential process since the group status, history, selection algorithm and selection process all reside in one location. However, hunt group control can become very complex when such control is distributed among the control units in a plurality of switching modules. This is particularly true in typical applications where it is important that the members of each hunt group can be spread across a number of switching modules to enhance reliability and for administrative convenience in changing group members and in load balancing.
One important aspect of the complexity of distributed hunt group control is the number of inter-module control messages that are generated. In switching systems where the speed or capacity of the inter-module control communication mechanism are limiting factors, it is important to prevent the processing of calls to hunt groups from requiring so many control messages that the overall call processing capacity of the system is substantially reduced.
In view of the foregoing, a recognized problem in the art is the difficulty in efficiently controlling multi-port hunt groups without relying on a system central control and without requiring excessive inter-module control communication.